// 用户个人信息仓库
import { defineStore } from 'pinia'
import { login } from "@/api/user";
import {getMyUserInfo} from '@/api/user'
import { showNotify } from 'vant';
import {setToken} from '@/utils/token'

const useUserInfo = defineStore('userInfo',{
  state(){
    return{
      avatar:'',//头像
      sex:'',//性别
      name:'',//用户名
      sign:'',//简介
    }
  },
  actions:{
    // 存储用户个人信息
    setUserInfo(data){
      this.avatar=data.avatar;
      this.sex=data.sex;
      this.name=data.name;
      this.sign=data.sign;
    },
    // 登录存储用户信息到仓库
    async userlogin(data){
      let res=await login(data); 
      showNotify({ type: 'success', message: '登录成功'});
      setToken(res.token,res.expire_in);
      this.setUserInfo({
        name:data.name,
        avatar:res.avatar,
        sex:res.sex,
        sign:res.sign
      })
    },
    // 刷新获取用户信息再存储到仓库
    async getUserInfo(){
      let res=await getMyUserInfo()
      // 存用户数据
      this.setUserInfo({
        name:res.name,
        avatar:res.avatar,
        sex:res.sex,
        sign:res.sign
      })
    }
  }
})

export default useUserInfo
